package com.ruoyi.wechat.service.impl;

import java.util.List;

import com.ruoyi.common.utils.uuid.IdUtils;
import com.ruoyi.wechat.service.IOrderDetailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.wechat.mapper.OrderMapper;
import com.ruoyi.wechat.domain.Order;
import com.ruoyi.wechat.service.IOrderService;
import org.springframework.transaction.annotation.Transactional;

/**
 * 商品订单管理Service业务层处理
 * 
 * @author ruoyi
 * @date 2024-12-29
 */
@Service
public class OrderServiceImpl implements IOrderService 
{
    @Autowired
    private OrderMapper orderMapper;

    @Autowired
    private IOrderDetailService orderDetailService;

    /**
     * 查询商品订单管理
     * 
     * @param orderId 商品订单管理主键
     * @return 商品订单管理
     */
    @Override
    public Order selectOrderByOrderId(String orderId)
    {
        return orderMapper.selectOrderByOrderId(orderId);
    }

    /**
     * 查询商品订单管理列表
     * 
     * @param order 商品订单管理
     * @return 商品订单管理
     */
    @Override
    public List<Order> selectOrderList(Order order)
    {
        return orderMapper.selectOrderList(order);
    }

    /**
     * 新增商品订单管理
     * 
     * @param order 商品订单管理
     * @return 结果
     */
    @Override
    @Transactional
    public int insertOrder(Order order)
    {
        order.setOrderId(IdUtils.randomUUID());
        order.setStatus("1");
        for (int i = 0; i < order.getOrderDetailList().size(); i++) {
            order.getOrderDetailList().get(i).setOrderId(order.getOrderId());
            order.getOrderDetailList().get(i).setOrderDetailId(IdUtils.randomUUID());
            System.out.println("order::"+order);
            orderDetailService.insertOrderDetail(order.getOrderDetailList().get(i));
        }
        return orderMapper.insertOrder(order);
    }

    /**
     * 修改商品订单管理
     * 
     * @param order 商品订单管理
     * @return 结果
     */
    @Override
    public int updateOrder(Order order)
    {
        if (order.getStatus()=="0"){
            order.setStatus("1");
        }else if(order.getStatus()=="1"){
            order.setStatus("2");
        }else {
            order.setStatus("3");
        }
        return orderMapper.updateOrder(order);
    }

    /**
     * 批量删除商品订单管理
     * 
     * @param orderIds 需要删除的商品订单管理主键
     * @return 结果
     */
    @Override
    public int deleteOrderByOrderIds(String[] orderIds)
    {
        return orderMapper.deleteOrderByOrderIds(orderIds);
    }

    /**
     * 删除商品订单管理信息
     * 
     * @param orderId 商品订单管理主键
     * @return 结果
     */
    @Override
    public int deleteOrderByOrderId(String orderId)
    {
        return orderMapper.deleteOrderByOrderId(orderId);
    }
}
